package com.ssky.bean.validator.core.checker;

import com.ssky.bean.validator.core.IValidatorContext;
import com.ssky.bean.validator.core.exception.VldException;

/**
 * *<li/> 针对String类型校验；其他类型不允许使用该规则。
 *
 * @param <V>
 * @param <L>
 * @param <B>
 * @Author: ssky
 * @Date: 2021/07/31
 * @Description:
 */
public class EmptyChecker<V, L, B>
        extends AbstractChecker<V, L, B> {

    public void initz() {
        if (!String.class.equals(field.getClassType())) {
            throw new VldException("Incorrect use of tools");
        }
    }


    /**
     * 具体规则执行器
     *
     * @param v   规则校验的当前值
     * @param l   当前值作为属性的所在对象
     * @param b   当前值所在的顶级javaBean对象
     * @param ctx 上下文（针对具体规则的实现要求，可基于接口IValidatorContext扩展）
     * @return 校验通过返回true, 不通过返回false
     */
    @Override
    public boolean process(V v, L l, B b, IValidatorContext ctx) {
        if (null == v) {
            return true;
        }

        String vStr = (String) v;

        if ("".equals(vStr)) {
            return true;
        }

        return false;
    }
}